package com.ruoyi.maode.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.maode.domain.dto.ApproveRequestDTO;
import com.ruoyi.maode.domain.dto.QueryFlowableDTO;
import com.ruoyi.maode.domain.dto.QueryPartDTO;
import com.ruoyi.maode.domain.vo.ApproveNodeVO;
import com.ruoyi.maode.domain.vo.ButtonVO;
import com.ruoyi.maode.domain.vo.FlowableVO;
import com.ruoyi.maode.domain.vo.TaskVO;
import com.ruoyi.web.util.PageQuery;

import java.util.List;

/**
 * 审批流程申请接口
 * @author zhangwenqiang
 */
public interface ApproveRequestProcessService {

    /**
     * 申请审批接口
     * @param approveRequestDTO
     */
    void approveRequest(ApproveRequestDTO approveRequestDTO);

    /**
     * 获取审批申请列表数据
     * @return
     */
    Page<FlowableVO> getTask(PageQuery<QueryFlowableDTO> dto);

    /**
     * 获取审批详情
     * @param taskId
     * @return
     */
    FlowableVO getTaskDetail(String taskId);

    /**
     * 获取已完成审批数据
     * @param dto
     * @return
     */
    Page<FlowableVO> getCompletedTask(PageQuery<QueryFlowableDTO> dto);

    /**
     * 执行审批
     * @param dto
     */
    void approve(ApproveRequestDTO dto);

    /**
     * 获取历史数据
     * @return
     */
    List<ApproveNodeVO> getHistory(String processInstanceId);




}
